package com.onlyoffice.demo.findproblem.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.onlyoffice.demo.findproblem.domain.ClickCheckRequest;
import com.onlyoffice.demo.findproblem.domain.ClickCheckResponse;
import com.onlyoffice.demo.findproblem.domain.GameLevel;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface GameService {

    /**
     * 获取所有启用的关卡列表
     */
    List<GameLevel> getAllLevels();

    /**
     * 获取分页关卡列表
     */
    IPage<GameLevel> getLevelsByPage(Long current, Long size, Integer difficulty);

    /**
     * 获取关卡详情（游戏用，不包含错误点坐标）
     */
    GameLevel getLevelForPlay(Long id);

    /**
     * 获取关卡详情（管理用，包含错误点坐标）
     */
    GameLevel getLevelWithSpots(Long id);

    /**
     * 检查点击位置
     */
    ClickCheckResponse checkClick(ClickCheckRequest request);

    /**
     * 创建关卡
     */
    GameLevel createLevel(GameLevel levelDTO);

    /**
     * 更新关卡
     */
    GameLevel updateLevel(Long id, GameLevel levelDTO);

    /**
     * 删除关卡
     */
    boolean deleteLevel(Long id);

    /**
     * 上传图片
     */
    String uploadImage(MultipartFile file);
}
